const Joi = require('joi')

// 定义 校验规则（导出 Joi schema 实例）

exports.register = Joi.object({
  // 校验 req.body 中的数据
  body: Joi.object({
    username: Joi.string().required().min(3).max(24).messages({
      'string.empty': '用户名不能为空',
      'string.min': '用户名长度至少3个字符',
      'string.max': '用户名长度最多24个字符',
      'any.required': '用户名为必填项'
    }),
    password: Joi.string().required().pattern(/^[\S]{6,12}$/).messages({
      'string.empty': '密码不能为空',
      'string.pattern.base': '密码必须是6-12位非空白字符',
      'any.required': '密码为必填项'
    })
  }).required()
})

exports.login = Joi.object({
  // 校验 req.body 中的数据
  body: Joi.object({
    username: Joi.string().required().min(3).max(24).messages({
      'string.empty': '用户名不能为空',
      'string.min': '用户名长度至少3个字符',
      'string.max': '用户名长度最多24个字符',
      'any.required': '用户名为必填项'
    }),
    password: Joi.string().required().pattern(/^[\S]{6,12}$/).messages({
      'string.empty': '密码不能为空',
      'string.pattern.base': '密码必须是6-12位非空白字符',
      'any.required': '密码为必填项'
    })
  }).required()
})

exports.userInfo = Joi.object({
  params: Joi.object({
    id: Joi.number().integer().positive().required().messages({
      'number.base': '用户ID必须是数字',
      'number.integer': '用户ID必须是整数',
      'number.positive': '用户ID必须是正数',
      'any.required': '用户ID为必填项'
    })
  })
})